package com.renaud.tvSpy;

import java.awt.Color;
import java.awt.Image;
import java.awt.Point;

import com.renaud.tvSpy.graphicsTool.JImageBuffer;

public class Loupe {
	private JImageBuffer backBuffer;
	private Image screenshot;
	private Point position;
	private int loupeLargeur;
	private int loupeHauteur;
	private int partX;
	private int partY;

	private float screenScale;
	private float loupeScale = 2.0f;
	private JImageBuffer bufferLoupe;
	
	
	
	
	
	
	
	public void draw(){
		this.bufferLoupe.clean();
		
		int sx = (int) (this.position.x / this.screenScale);
		int sy = (int) (this.position.y / this.screenScale);
		
		this.bufferLoupe.drawPart(this.screenshot, 0, 0, this.loupeLargeur, this.loupeHauteur, 
				sx-partX, sy-partY, sx+this.partX, sy+this.partY);
		this.bufferLoupe.drawRect(Color.yellow, 0, 0, loupeLargeur-1, loupeHauteur-1);
				
		this.backBuffer.drawImage(this.bufferLoupe.getImage(), position.x-loupeLargeur/2, position.y-loupeHauteur/2, 0, 0, 0, 1.0, 1.0f);
	}
	
	
	
	
	
	
	
	public Loupe(JImageBuffer buffer,float screenScale,int largeur,int hauteur) {
		this.loupeLargeur = largeur;
		this.loupeHauteur = hauteur;
		this.backBuffer = buffer;
		this.screenScale = screenScale;
		
		this.partX = (int) (this.loupeLargeur / loupeScale);
		this.partY = (int) (this.loupeHauteur / loupeScale);
		
		bufferLoupe = new JImageBuffer(Color.black, loupeLargeur, loupeHauteur);
	}

	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	public Point getPosition() {
		return position;
	}

	public void setPosition(Point position) {
		this.position = position;
	}

	public JImageBuffer getBackBuffer() {
		return backBuffer;
	}

	public void setBackBuffer(JImageBuffer buffer) {
		this.backBuffer = buffer;
	}

	public Image getScreenshot() {
		return screenshot;
	}

	public void setScreenshot(Image screenshot) {
		this.screenshot = screenshot;
	}
	
	
	
	
	
}
